perm filename PICNIC.SAI[VIS,HPM] blob
sn#112695 filedate 1974-07-20 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 REQUIRE "PICSUB.REL[VIS,HPM]" LOAD_MODULE
C00005 ENDMK
C⊗;
REQUIRE "PICSUB.REL[VIS,HPM]" LOAD_MODULE;
EXTERNAL INTEGER PICBIT,PICWID,PICWIZ,PICHIG,PICLIN,PICSIZ;
INTEGER XXCOUNT,XXBRCHAR,XXEOF,XXPICLOC; BOOLEAN XXFLAG;
EXTERNAL PROCEDURE MAKTAB;
EXTERNAL INTEGER PROCEDURE PIXEL(REFERENCE INTEGER PIX; INTEGER I,J);
EXTERNAL PROCEDURE PUTEL(REFERENCE INTEGER PIX; INTEGER I,J,VALUE);
BOOLEAN PROCEDURE PIXDIM(STRING FILNAM);
BEGIN
INTEGER ARRAY BUF[0:'177];
OPEN(10,"DSK",'10,2,0,XXCOUNT,XXBRCHAR,XXEOF);
LOOKUP(10,FILNAM,XXFLAG);
IF XXFLAG THEN
BEGIN
CLOSE(10);
RETURN(FALSE);
END
ELSE
BEGIN
ARRYIN(10,BUF[0],'200);
IF BUF[0]≠-1 ∨ BUF[7]=0 THEN RETURN(FALSE);
PICBIT←BUF[1];
PICWID←BUF[6]-BUF[5]+1;
PICHIG←BUF[4]-BUF[3]+1;
PICLIN←BUF[2];
PICWIZ←PICLIN*(36%PICBIT);
PICSIZ←PICLIN*PICHIG;
XXPICLOC←(BUF[7] LAND '777777)-'200;
RETURN(TRUE);
END;
END;
PROCEDURE GETPIX(REFERENCE INTEGER PICTURE);
BEGIN INTEGER I;
FOR I←1 STEP 1 UNTIL XXPICLOC DO WORDIN(10);
ARRYIN(10,PICTURE,PICSIZ);
CLOSE(10);
MAKTAB;
END;
PROCEDURE MAKPIX(INTEGER HEIGHT,WIDTH,BITS);
BEGIN INTEGER WORD;
PICBIT←BITS;
PICWID←WIDTH;
PICHIG←HEIGHT;
WORD←36%BITS;
PICLIN←(PICWID+WORD-1)%WORD;
PICWIZ←PICLIN*(36%PICBIT);
PICSIZ←PICLIN*PICHIG;
MAKTAB;
END;
BOOLEAN PROCEDURE PUTPIX(REFERENCE INTEGER PICTURE; STRING FILNAM);
BEGIN
INTEGER ARRAY BUF[0:'177];
OPEN(11,"DSK",'10,0,2,XXCOUNT,XXBRCHAR,XXEOF);
ENTER(11,FILNAM,XXFLAG);
IF XXFLAG THEN
BEGIN
CLOSE(11);
RETURN(FALSE);
END
ELSE
BEGIN
BUF[0]←-1;
BUF[1]←PICBIT;
BUF[2]←PICLIN;
BUF[3]←1; BUF[4]←PICHIG;
BUF[5]←1; BUF[6]←PICWID;
BUF[7]←((-PICSIZ) LSH 18) LOR '200;
ARRYOUT(11,BUF[0],'200);
ARRYOUT(11,PICTURE,PICSIZ);
CLOSE(11);
RETURN(TRUE);
END;
END;